草庐IT

php sql同步等待

全部标签

c# - 异步 CTP - 如何使用异步/等待调用 wcf 服务?

如果我调用WCF服务方法,我将执行如下操作:proxy.DoSomethingAsync();proxy.DoSomethingAsyncCompleted+=OnDoSomethingAsyncCompleted;我如何使用新的async做同样的事情?CTP?我想我需要类似proxy.DoSomethingTaskAsync的东西或proxy.DoSomethingAsync().ToTask()?Web服务调用需要返回Task能够使用await关键字,但如何?? 最佳答案 在CTP中,有一些工厂方法可以将常规APM函数(开始/结

c# - 为什么任务甚至在等待中完成

我在下面的代码中遇到问题:staticvoidMain(string[]args){TasknewTask=Task.Factory.StartNew(MainTask);newTask.ContinueWith((TasksomeTask)=>{Console.WriteLine("MainState="+someTask.Status.ToString()+"IsFaulted="+someTask.IsFaulted+"isComplete="+someTask.IsCompleted);});while(true){}}staticasyncTaskMainTask(){Con

c# - 等待系统删除文件

我在删除文件后刷新文件列表时遇到问题。当我发出删除文件的命令时,异常被抛出,因为刷新方法试图访问一个应该被删除的文件。经过一番思考和调试,我得出的结论是,问题在于系统需要一些时间来删除文件。我这样解决://DeletingfileSystem.Threading.Thread.Sleep(2000);//Refreshinglist而且效果很好。我的问题是有没有更优雅的方法来等待系统删除文件然后继续代码...? 最佳答案 这对我有用:publicstaticvoidDeleteFile(StringfileToDelete){var

c# - 如何同步两个多行文本框的滚动?

如何在C#(WinForms)中同步两个多行文本框的滚动?当您在文本框A中向上/向下滚动一行时,文本框B也应该向上/向下滚动。反之亦然。这是否可以在没有自定义控件的情况下实现? 最佳答案 是的,您必须创建一个自定义文本框以便检测它是否滚动。诀窍是将滚动消息传递给另一个文本框,以便它同步滚动。只有当其他文本框大小相同且行数相同时,这才有效。向您的项目添加一个新类并粘贴如下所示的代码。编译。将工具箱顶部的两个新控件拖放到窗体上。将Buddy属性设置为两个上的另一个控件。运行,在它们中键入一些文本,然后在拖动滚动条时观察它们同步滚动。us

c# - 任务链(等待上一个任务完成)

vartasks=newList();foreach(varguidinguids){vartask=newTask(...);tasks.Add(task);}foreach(vartaskintasks){task.Start();Task.WaitAll(task);}这是UI线程的运行。我需要一个接一个地执行任务变量中的所有任务。问题是如果我调用Task.WaitAll(task),UI会卡住。如何在不卡住UI的情况下执行以下逻辑? 最佳答案 这不是任务链。您需要使用ContinueWith进行任务链接。最后一个任务需要更新

c# - 我应该在每个等待的操作上调用 ConfigureAwait(false)

我读了这篇文章https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html-但是我看到了一个矛盾:我知道UI线程死锁的问题,因为UI线程阻塞等待异步操作完成,但相同的异步操作同步到UI线程上下文-因此异步操作无法进入UI线程,因此UI线程不会停止等待。文章告诉我们解决方法是不要在UI线程上阻塞,否则您需要使用ConfigureAwait(false)everywhere:Youwouldhavetouseforeveryawaitinthetransitiveclosureofallmethodscalledb

C#有异步函数调用同步函数或者同步函数调用异步函数

我正在编写一个C#.Net4.5库来执行常见的sql数据库操作(备份、恢复、执行脚本等)。我希望每个操作都有同步和异步功能,因为这个库将被控制台和GUI应用程序使用,但我不想在任何地方重复代码。所以在我看来,我有两个选择:在同步函数中编写完成工作的代码,然后将其包装在异步函数的任务中,如下所示:publicvoidBackupDB(stringserver,stringdb){//Doalloftheworkandlongrunningoperationhere}publicasyncTaskBackupDBAsync(stringserver,stringdb){awaitTask.

c# - 本地化资源 .NET - 如何使它们保持同步?

当我们遵循本地化指南时,我们最终会得到至少几个资源文件。Resource.resx和Resource.CI.resx是特定的CultureInfo资源。假设我们在Resource.resx中添加了一百个字符串对,并希望在另一个资源中转换这些键。我们现在可以复制粘贴它们并翻译它们,这可能是第一次成功。然而,在我们翻译字符串之后,很难保持文件同步-它会自动重新排序字符串,我目前不明白确保每个字符串本地化的假定方法是什么。由于资源字符串应该相互链接并完成额外的工作以确保正确构建附属程序集,我希望有一个功能,如“确保每个资源字符串都存在于本地化资源文件中”'但我担心缺少一个..

c# - 异步使用同步 WCF 服务

我目前正在将客户端应用程序迁移到.NET4.5以使用async/await。该应用程序是当前仅提供同步服务的WCF服务的客户端。我现在想知道,我应该如何异步使用这个同步服务?我正在使用channelfactories使用在服务器和客户端之间共享的服务契约(Contract)连接到WCF服务。因此,我无法使用VisualStudio或svcutil的自动生成来生成异步客户端代理。我已阅读thisrelatedquestion这是关于是否使用Task.Run在客户端包装同步调用,或者是否改为使用异步方法扩展服务契约。答案表明,服务器提供“真正的”异步方法对客户端性能更好,因为没有线程必须主

c# - 单击按钮期间是否可以等待异步任务?

我的应用程序中有一个刷新按钮,它使用一些异步方法来更新显示的项目列表。问题是我不能为按钮单击的事件处理程序返回Task类型,所以我只剩下一个asyncvoid方法。因此,用户可以点击刷新按钮,然后在重新填充列表时选择一个项目,这将导致错误。处理按钮点击的代码开始:privateasyncvoidButton_Click_1(objectsender,RoutedEventArgse){awaitViewModel.CreateMessageCommand();那么有什么方法可以正确地等待这个任务完成吗? 最佳答案 由于控件的事件处理